Tokenization is a process in which a token is substituted as a proxy for data thereby obscuring the underlying data. Accordingly, a token is a surrogate value that can be used to replace some underlying sensitive value. For example, a token may be issued as a proxy for a credit or debit card primary account number (“PAN”) such that the token is processed during a transaction instead of the actual PAN, thereby protecting the PAN from disclosure during the transaction. The tokens may be generated, stored, and maintained by an entity that specializes in the tokenization process. This entity may be a Tokenization Service Provider (“TSP”), as described in the X9.119-2 standard, that would handle receiving requests to tokenize data and detokenize a token to reveal the corresponding data for an authorized party and/or subscriber of the TSP's services. A token can be made to look very similar to the underlying data that it is serving as a proxy for such that that no reconfiguration of systems is required (i.e., the token is “format preserving”). In the example where the token serves as a proxy for a PAN, the token may have the same format (e.g., a string of sixteen numbers) such that the token can be accepted by existing payment systems. The mapping of underlying sensitive values to tokens does not have to be one-to-one. As in the example above, different tokens could replace the same PAN in two separate data repositories. A token attribute may share a common value with the original underlying value it is replacing or be specific to the token itself. For example, the token may share the structure of that value, (i.e., the length and character set) or a mechanism to determine that the token is actually a token (i.e., actually represents a replacement value rather than the original underlying value).